/**
 * 
 */
package br.com.skynix.tcmc.service.rh.funcionarios;

import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.skynix.tcmc.base.excecao.MensagemErro;
import br.com.skynix.tcmc.base.excecao.NegocioException;
import br.com.skynix.tcmc.base.excecao.LabelsSistema;
import br.com.skynix.tcmc.base.excecao.MensagensSistema;
import br.com.skynix.tcmc.base.spring.AbstractDao;
import br.com.skynix.tcmc.base.spring.AbstractServiceImpl;
import br.com.skynix.tcmc.model.rh.Funcionario;

/**
 * @author davi
 * 
 */
@Service
public class FuncionarioServiceImpl extends AbstractServiceImpl<Funcionario>
		implements FuncionarioService {

	@Autowired
	private FuncionarioDao dao;

	/*
	 * (non-Javadoc)
	 * 
	 * @see br.com.skynix.tcmc.base.spring.AbstractServiceImpl#getDao()
	 */
	@Override
	protected AbstractDao<Funcionario> getDao() {
		return dao;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * br.com.skynix.tcmc.service.rh.funcionarios.FuncionarioService#buscarPeloCPF
	 * (java.lang.String)
	 */
	@Override
	public Funcionario buscarPeloCPF(String cpf) {
		if (StringUtils.isBlank(cpf)) {
			throw new NegocioException(new MensagemErro(
					MensagensSistema.ERRO_MSG_GERAL_CAMPO_OBRIGATORIO,
					LabelsSistema.PROP_FUNCIONARIO_CPF));
		}
		else {
			Funcionario funcionario = new Funcionario();
			funcionario.setCpf(cpf);
			List<Funcionario> resultado = dao.buscarPeloExemplo(funcionario);
			return resultado.isEmpty() ? null : resultado.get(0);

		}

	}
}
